angular.module('myApp', [])

.directive('bookList',function(){
    return{
        restrict:'ECAM',
        //后面做练习的时候应该去想scope如何安排，scope是采用true/共享同一、false/双向继承、单向继承（&、=、@）其中哪个好
        controller:function($scope){
            //&books
            // $scope.books = $scope.a();
            //=books 双向绑定
            // $scope.books = $scope.b;
            // $scope.b.push({
            //     name:'c++'
            // })
            console.log($scope.c);
        },
        //scope:false 和父元素共享同一作用域
        //scope:true 创建一个有继承链的独立作用域
        //scope:{} 当为对象的时候也会创建一个独立的作用域；有继承父元素，但是没有拥有父元素的继承链
        scope:{
            //将父元素books封装成一个a函数
            // a:'&books'
            // =parentBooks  等于parentBooks这个属性，parentBooks又赋给b属性
            // <div book-list books="books" parent-books="books"></div>  parent-books属性对应的是表达式为books的对象，books把它赋给parent-books
            //双向绑定 b=parentBooks属性对应的父作用域的表达式，引用对象类型的方法
            // b:"=parentBooks"
            //使用简单数据类型的方法
            c:'@parentTitle'
        },
        controllerAs: 'bookListController',
        template:'<div><ul><li ng-repeat="book in books">{{book.name}}</li></ul></div>',
        replace:true

    }
})
//controller会传入$scope，$scope是连接controller、view、model
//controller主要是控制一些业务逻辑的，
// 比如说要绑定一些事件，设定$scope里面的一些参数
.controller('firstController',[
    '$scope',function ($scope) {
        console.log($scope);
        $scope.books =[
            {
                name : 'php'
            },
            {
                name : 'javascript'
            },
            {
                name : 'java'
            }
        ];
        $scope.title = '张三';
    }
])